Although computers were once isolated and had minimal or little interaction with other computers, today's computers interact with a wide variety of other computers through Local Area Networks (LANs), Wide Area Networks (WANs), dial-up connections, and so forth. With the wide-spread growth of the Internet, connectivity between computers is becoming more important and has opened up many new applications and technologies. The growth of large-scale networks, and the wide-spread availability of low-cost personal computers, has fundamentally changed the way that many people work, interact, communicate, and play.
Using similar communication networks as those described above, distributed systems provide a decentralized and parallel computing combination of hardware and/or software resources that communicate to accomplish a common objective or task. The types of hardware, programming languages, operating systems, and other resources may vary drastically from system to system. One of the main goals of a distributed computing system is to connect users and resources in a transparent, open, and scalable way. Ideally this arrangement is drastically more fault tolerant and more powerful than many combinations of stand-alone computer systems.
Each resource in a distributed system must be configured and appropriately managed to ensure proper operation and compatibility with the other components in the system. From an administrative standpoint, such tasks can become quite complex depending on the skill set of the administrator, the complexity of the system, and other factors. In order to assist in this and other similar management operations, utilities such as consoles and other user interfaces have been developed for providing a framework in which collections of administrative tools can be created, saved, and opened. Such tools are used to configure objects, monitor state, or otherwise manage hardware, software, and/or networking components. These and other tasks are performed by providing items such as controls, wizards, documentation, and snap-ins, which may be from any number of various software vendors and/or user defined. Often, however, these utilities differ from application to application—mostly in terms of size, complexity, and functionality.
As the clusters of components (such as services) within a distributed system increase, so too does the need for administrator access to the management functionality of each component. In addition, as the complexity of hardware and/or software grows, richer interaction between objects in the system is needed. Consequently, a formal framework for installing, configuring, and managing components is needed, where increasing the number of components represented in the system does not mean a change in the core framework. Also, it is important to provide much richer interfaces to administrators both to ease management of individual objects, and to give better information about interactions between them.
As the clusters of components (such as services) within a distributed system increase, so too does the need for administrator access to the management functionality of each component. In addition, as the complexity of hardware and/or software grows, richer interaction between objects in the system is needed. Consequently, a formal framework for installing, configuring, and managing components is need, where increasing the number of components represented in the system does not mean a change in the core framework. Also, it is important to provide much richer interfaces to administrators both to ease management of individual objects, and to give better information about interactions between them.